/*
使用mockjs提供mock数据接口
 */
import Mock, { Random } from 'mockjs'
import data from './data.json'

Random.extend({
	projectName: function() {
		const projectNames = [
			'纵向项目提交审核',
			'芝麻酱真伪快速鉴别技术研究',
			'中子全散射方法在大分子共混互溶与共混不互溶体系中...',
			'制药废水处理工艺',
			'实验室废水处理技术',
			'试技术开发',
			'华南理工大学仪器设备资产管理系统技术支持服务',
			'采用超重力强化',
			'试技术开发',
			'纳米粒子功能化及其对聚苯乙烯泡沫的阻燃抑烟性能...',
		]
		return this.pick(projectNames)
	},
	sex: function() {
		const sexs = [
			'男',
			'女'
		]
		return this.pick(sexs)
	},
	projectType: function() {
		const projectTypes = [
			'纵向项目',
			'合同签订',
			'校级项目',
			'论文',
			'经费认领',
			'获奖',
			'用印申请',
		]
		return this.pick(projectTypes)
	},
	status: function() {
		const status = [
			'科研院退回',
			'已提交',
			'学校通过',
			'暂存',
			'科研退回',
		]
		return this.pick(status)
	},
	img: function() {
		const img = [
			'images/index/icon_hengxiangxiangmu.svg',
			'images/index/icon_hetongqianding.svg',
			'images/index/icon_huojiang.svg',
			'images/index/icon_jingfeirenling.svg',
			'images/index/icon_lunwen.svg',
			'images/index/icon_xiaojixiangmu.svg',
			'images/index/icon_yongyinshenqing.svg',
			'images/index/icon_zongxiangxiangmu.svg',
		]
		return this.pick(img)
	},
	fileDown: function() {
		const fileDown = [
			'images/detail/icon_excel.svg',
			'images/detail/icon_pdf.svg',
			'images/detail/icon_word.svg',
			'images/detail/icon_ppt.svg',
		]
		return this.pick(fileDown)
	},
	fee: function() {
		const fee = ['设备费', '材料费', '测试化验加工费', '燃料动力费']
		return this.pick(fee)
	},
	check: function() {
		const checkObj = [
			{ checkStatus: '科研处通过', checkState: 'pass' },
			{ checkStatus: '科研处退回', checkState: 'notpass' },
			{ checkStatus: '作废', checkState: 'avoid' },
		]
	}
})

Random.extend({
	
})
Mock.setup({
  timeout: '200-600'
});
// 返回goods的接口
Mock.mock('/api/goods', {code:0, data: data.goods})
// 返回ratings的接口
Mock.mock('/ratings', {code:0, data: data.ratings})
// 返回info的接口
Mock.mock('/info', {code:0, data: data.info})
// 登录接口
Mock.mock(RegExp('/login.json' + ".*"), 'get', config => {
	return getUrlParam(config.url, 'password') === '123456a' ? {
		code: 0,
		data: data.userInfo
	} : {
		code: 1,
		data: '用户名或密码错误'
	}
})

// 首页待办接口
Mock.mock(RegExp('/index/todo.json' + ".*"), 'get', () => {
	let resultArr = []
	for(let i = 0; i < 10; i++) {
		resultArr.unshift(Mock.mock(
			{ 
				projectType: '@projectType',
				projectName: '@projectName',
				createDate: '@date',
				status: '@status',
				img: '@img' 
			}))
	}
	return Mock.mock({
		body:{
			data: {
				item: resultArr,
				totals: 21
			}
		},
		status: 200,
		message: '获取成功'
	})
})

// 筛选项接口
Mock.mock(RegExp('/filter.json' + '.*'), 'get', () => {
	const resultObj = [
		{
			name: '分类',
			code: 'type',
			node: [
				{
					name: '经费报销',
					code: 'baoxiao'
				},
				{
					name: '校级项目结项',
					code: 'xiaojijiexiang'
				},
				{
					name: '用章申请',
					code: 'yongzhangshenqing'
				},
				{
					name: '纵向项目中检',
					code: 'zongxiangzhongjian'
				},
				{
					name: '纵向项目结项',
					code: 'zongxiangjiexiang'
				},
				{
					name: '纵向项目立项',
					code: 'zongxianglixiang'
				},
				{
					name: '校级项目中检',
					code: 'xiaojizhongjian'
				},
				{
					name: '项目变更',
					code: 'xiangmubiangeng'
				},
				{
					name: '经费认领',
					code: 'jingfeirenling'
				},
				{
					name: '经费外拨',
					code: 'jingfeiwaibo'
				},
				{
					name: '基本科研业务费项目申报材料',
					code: 'shenbaocailiao'
				},
			]
		},
		{
			name: '审核状态',
			code: 'status',
			node: [
				{
					name: '已提交',
					code: 'yitijiao'
				},
				{
					name: '暂存',
					code: 'zancun'
				},
				{
					name: '学校通过',
					code: 'xuexiaotongguo'
				},
				{
					name: '科研退回',
					code: 'keyantuihui'
				},
				{
					name: '审核中',
					code: 'shenhezhong'
				},
			]
		}
	]
	return Mock.mock({
		body: {
			data: {
				item: resultObj
			}
		},
		status: 200,
		message: '获取成功'
	})
})
// 基本信息接口
Mock.mock(RegExp('/get.json' + '.*'), 'get', () => {
	const resultArray = [
		{
			groupName: '人类遗传资源备案',
			node: [
				{
					title: '是否属于国际合作项目',
					text: '是'
				},
				{
					title: '是否涉及人类遗传资源样本或信息的采集',
					text: '是'
				},
				{
					title: '累计采集例数',
					text: '123'
				},
				{
					title: '是否涉及人类遗传资源出境',
					text: '否'
				},
				{
					title: '是否有临床干预措施的临床项目',
					text: '是'
				},
				{
					title: '是否是基础医院研究或应用基础医学研究',
					text: '是'
				},
			]
		},
		{
			groupName: '医学研究登记备案信息',
			node: [
				{
					title: '是否有临床干预措施的临床研究项目',
					text: '是'
				},
				{
					title: '是否是基础医院研究或应用基础医学研究',
					text: '是'
				}
			]
		},
		{
			groupName: '基本信息',
			node: [
				{
					title: '批准号',
					text: 'I3458002K'
				},
				{
					title: '项目名称',
					text: '碳纳米材料超分子修饰及多功能阻燃3D打印材料可控构筑研究'
				},
				{
					title: '项目编号',
					text: '8000534220210718'
				},
				{
					title: '负责人',
					text: '张三'
				},
				{
					title: '负责人类型',
					text: '本院人员'
				},
				{
					title: '负责人电话',
					text: '188 8888 8888'
				},
				{
					title: '亚科室',
					text: '-'
				},
				{
					title: '负责人邮箱',
					text: 'ldw@136.com'
				},
				{
					title: '项目分类',
					text: '卫生部国家重点专科'
				},
				{
					title: '项目级别',
					text: '国家级'
				},
				{
					title: '经办人',
					text: '张三'
				},
				{
					title: '经办人电话',
					text: '151 1123 6322'
				},
				{
					title: '申请代码1',
					text: '-'
				},
				{
					title: '申请代码2',
					text: '-'
				},
				{
					title: '项目来源单位',
					text: '-'
				},
				{
					title: '项目状态',
					text: '进行中'
				},
				{
					title: '立项日期',
					text: '2020/09/15'
				},
				{
					title: '开始日期',
					text: '2020/09/15'
				},
				{
					title: '计划结项日期',
					text: '2020/09/15'
				},
				{
					title: '结项日期',
					text: '2020/09/15'
				},
				{
					title: '项目总经费',
					text: '1345万元'
				},
				{
					title: '配套经费',
					text: '1345万元'
				},
				{
					title: '专项经费',
					text: '1345万元'
				},
			]
		},
		{
			groupName: '教育部统计信息',
			node: [
				{
					title: '一级学科',
					text: '化学工程'
				},
				{
					title: '社会经济服务目标',
					text: '卫生一般问题'
				},
				{
					title: '项目来源',
					text: '省/市/自治区科技项目'
				},
				{
					title: '研究类别',
					text: '应用研究'
				},
				{
					title: '国民经纪行业',
					text: '医院'
				},
				{
					title: '合作形式',
					text: '独立完成'
				},
				{
					title: '组织形式',
					text: '牵头单位'
				},
			]
		},
	]
	return Mock.mock({
		body: {
			data: {
				item: resultArray
			}
		},
		status: 200,
		message: '获取成功'
	})
})
// 成员信息接口
Mock.mock(RegExp('/getPerson.json.*'), 'get', () => {
	const resultArray = [
		
	]
	for(let i = 0 ; i < 12 ; i ++) {
		resultArray.push({
			id: '@id',
			name: '@cname',
			job: '教授',
			role: '负责人',
			sex: '@sex',
			img: '@image'
		})
	}
	return Mock.mock({
		body: {
			data: {
				item: resultArray
			}
		},
		status: 200,
		message: '获取成功'
	})
})

// 预算信息接口
Mock.mock(RegExp('/getBudget.json.*'), 'get', () => {
	const resultArray  = []
  const r = random(20, 80)
	for(let i = 0 ; i <  r ; i ++ ) {
		resultArray.push({
			text: '@increment(100)' + '万元',
			title: '@fee'
		})
	}
	return Mock.mock({
		body: {
			data: {
				item: resultArray
			}
		},
		status: 200,
		message: '获取成功'
	})
})

// 文档信息接口
Mock.mock(RegExp('/getDocument.json.*'), 'get', () => {
	const resultArray  = []
  const r = random(20, 80)
	for(let i = 0 ; i <  r ; i ++ ) {
		resultArray.push({
			title: '@ctitle',
			date: '@date',
			icon: '@fileDown'
		})
	}
	return Mock.mock({
		body: {
			data: {
				item: resultArray
			}
		},
		status: 200,
		message: '获取成功'
	})
})

// 通知公告
Mock.mock(RegExp('/report.json.*'), 'get', () => {
	const resultArray  = []
  const r = random(1, 10)
	for(let i = 0 ; i <  r ; i ++ ) {
		const ri = random(1, 10)
		resultArray.push({
			date: '@date',
			node: []
		})
		for (let j = 0 ; j < ri ; j++) {
			resultArray[i].node.push({
				title: '@ctitle',
				time: '@time',
				icon: 'images/index/icon_tongzhigonggao.svg',
				content: '@cparagraph(1, 3)'
				// content: Random.cparagraph()
			})
		}
	}
	return Mock.mock({
		body: {
			data: {
				item: resultArray
			}
		},
		status: 200,
		message: '获取成功'
	})
})

// 通知公告详情 
Mock.mock(RegExp('/messageReportDetail.json.*'), 'get', () => {
	const resultObj = {
		title: '系统公告',
		// content: '@cparagraph',
		content: Random.cparagraph(1,99),
		date: '@date',
		time: '@time',
		icon: 'images/index/icon_tongzhigonggao.svg',
	}
	return Mock.mock({
		body: {
			data: {
				item: resultObj
			}
		},
		status: 200,
		message: '获取成功'
	})
})

// 论文网推
Mock.mock(RegExp('/paperSent.json.*'), 'get', () => {
	const resultArray  = []
  const r = random(1, 10)
	for(let i = 0 ; i <  r ; i ++ ) {
		const ri = random(1, 10)
		resultArray.push({
			date: '@date',
			node: []
		})
		for (let j = 0 ; j < ri ; j++) {
			resultArray[i].node.push({
				title: '@title',
				date: '@date',
				time: '@time',
				icon: 'images/index/icon_tongzhigonggao.svg',
				content: '@paragraph(1, 3)',
				duplicate: '@boolean'
				// content: Random.cparagraph()
			})
		}
	}
	return Mock.mock({
		body: {
			data: {
				item: resultArray
			}
		},
		status: 200,
		message: '获取成功'
	})
})

// 审核详情
Mock.mock(RegExp('/getWorkFlow.json.*'), 'get', () => {
	return Mock.mock({
		body: {
			data: {
				item: '[{\"isHq\":false,\"role\":\"科研人员\",\"name\":\"科研人员\",\"isBq\":false,\"type\":\"pass\"},{\"isHq\":false,\"role\":\"科研秘书\",\"name\":\"科研秘书\",\"isBq\":false,\"type\":\"uncheck\"},{\"isHq\":false,\"role\":\"科研处管理员\",\"name\":\"科研处管理员\",\"isBq\":false,\"type\":\"auditing\"}]'
			},
			status: 200,
			message: '获取成功'
		}
	})
})

// 审核日志
Mock.mock(RegExp('/getCheckLog.json.*'), 'get', () => {
	const resultArray  = []
  const r = 20
	for(let i = 0 ; i <  r ; i ++ ) {
		resultArray.push({
			checkDate: "2021-01-26 15:28:00",
			checkInfo: "资料不全资料不全，重要的事情说三遍，请核对后重新提交一版资料不全资料不全资料不全资料不全",
			// checkInfo: "资料不全资料不全，重要的事情说三遍，请核对后重新提交一版资料不全资料不全资料不全资料不全，重要的事情说三遍，请核对后重新提交一版资料不全资料不全资料不全资料不全，重要的事情说三遍，请核对后重新提交一版资料不全资料不全资料不全资料不全，重要的事情说三遍，请核对后重新提交一版资料不全资料不全资料不全资料不全，重要的事情说三遍，请核对后重新提交一版资料不全资料不全资料不全资料不全，重要的事情说三遍，请核对后重新提交一版资料不全资料不全资料不全资料不全，重要的事情说三遍，请核对后重新提交一版资料不全资料不全",
			checkState: "pass",
			checkStatus: "审核通过",
			checker: "张三"
		})
	}
	return Mock.mock({
		body: {
			data: {
				item: resultArray	
			},
			status: 200,
			message: '获取成功'
		}
	})
})

/**
 * @description 获取url中的参数
 * @author e-plugger.com
 * @date 2021/11/18
 * @param url
 * @param paramName
 * @returns {*} 
 */
const getUrlParam = (url, paramName) => {
	return url.substring(url.indexOf(paramName)).split('&')[0].split('=')[1]
}

function random(min, max) {
	return Math.floor(Math.random() * (max - min)) + min
}